package com.agg.core.service;

import com.agg.core.base.VoidEnum;
import com.agg.core.base.dto.EntityDTO;
import com.agg.core.base.dto.ExtDTO;
import com.agg.core.base.dto.PaginationDTO;
import com.agg.core.base.po.BasePO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

public interface BaseService<T> extends IService<T> {
    <K,E,Ex>Page<T> getByPage(PaginationDTO<K, E,Ex> pagination) ;

    <T extends BasePO> Page<T> loadPage(PaginationDTO<T, VoidEnum, ExtDTO> pagination) ;

    <K,E,Ex> Class<PaginationDTO<K, E,Ex>> getClz();

    <E> Integer saveEntity(EntityDTO<E> dto);
}
